package com.example.demo.entity.wx;

public class example {
    /**
     * 类名: OAuthServlet </br>
     * 描述: 授权后的回调请求处理 </br>
     * 开发人员： souvc </br>
     * 创建时间：  2015-11-27 </br>
     * 发布版本：V1.0  </br>
     */
//    public class OAuthServlet extends HttpServlet {
//        private static final long serialVersionUID = -1847238807216447030L;
//
//        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//            request.setCharacterEncoding("utf-8");
//            response.setCharacterEncoding("utf-8");
//
//            // 用户同意授权后，能获取到code
//            String code = request.getParameter("code");
//            String state = request.getParameter("state");
//
//            // 用户同意授权
//            if (!"authdeny".equals(code)) {
//                // 获取网页授权access_token
//                WeixinOauth2Token weixinOauth2Token = AdvancedUtil.getOauth2AccessToken("wxe34a90ac7bxxcab85c", "1207d566090a8344xxxd6224c02c", code);
//                // 网页授权接口访问凭证
//                String accessToken = weixinOauth2Token.getAccessToken();
//                // 用户标识
//                String openId = weixinOauth2Token.getOpenId();
//                // 获取用户信息
//                SNSUserInfo snsUserInfo = AdvancedUtil.getSNSUserInfo(accessToken, openId);
//
//                // 设置要传递的参数
//                request.setAttribute("snsUserInfo", snsUserInfo);
//                request.setAttribute("state", state);
//            }
//            // 跳转到index.jsp
//            request.getRequestDispatcher("index.jsp").forward(request, response);
//        }
//    }





//    /**
//     * URL编码（utf-8）
//     *
//     * @param source
//     * @return
//     */
//    public static String urlEncodeUTF8(String source) {
//        String result = source;
//        try {
//            result = java.net.URLEncoder.encode(source, "utf-8");
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//        return result;
//    }








//    public class TestURL {
//
//        /**
//         * 方法名：main</br>
//         * 详述：生成URL编码 </br>
//         * 开发人员：souvc </br>
//         * 创建时间：2016-1-4  </br>
//         * @param args 说明返回值含义
//         * @throws 说明发生此异常的条件
//         */
//        public static void main(String[] args) {
//            String source="http://chiyan.duapp.com/oauthServlet";
//            System.out.println(CommonUtil.urlEncodeUTF8(source));
//        }
//
//    }







//    /**
//     * 类名: CommonUtil </br>
//     * 描述: 通用工具类 </br>
//     * 开发人员： souvc </br>
//     * 创建时间：  2015-9-30 </br>
//     * 发布版本：V1.0  </br>
//     */
//    public class CommonUtil {
//        private static Logger log = LoggerFactory.getLogger(CommonUtil.class);
//
//        // 凭证获取（GET）
//        public final static String token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
//
//        /**
//         * 发送https请求
//         *
//         * @param requestUrl 请求地址
//         * @param requestMethod 请求方式（GET、POST）
//         * @param outputStr 提交的数据
//         * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
//         */
//        public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {
//            JSONObject jsonObject = null;
//            try {
//                // 创建SSLContext对象，并使用我们指定的信任管理器初始化
//                TrustManager[] tm = { new MyX509TrustManager() };
//                SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
//                sslContext.init(null, tm, new java.security.SecureRandom());
//                // 从上述SSLContext对象中得到SSLSocketFactory对象
//                SSLSocketFactory ssf = sslContext.getSocketFactory();
//
//                URL url = new URL(requestUrl);
//                HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
//                conn.setSSLSocketFactory(ssf);
//
//                conn.setDoOutput(true);
//                conn.setDoInput(true);
//                conn.setUseCaches(false);
//                // 设置请求方式（GET/POST）
//                conn.setRequestMethod(requestMethod);
//
//                // 当outputStr不为null时向输出流写数据
//                if (null != outputStr) {
//                    OutputStream outputStream = conn.getOutputStream();
//                    // 注意编码格式
//                    outputStream.write(outputStr.getBytes("UTF-8"));
//                    outputStream.close();
//                }
//
//                // 从输入流读取返回内容
//                InputStream inputStream = conn.getInputStream();
//                InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
//                BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
//                String str = null;
//                StringBuffer buffer = new StringBuffer();
//                while ((str = bufferedReader.readLine()) != null) {
//                    buffer.append(str);
//                }
//
//                // 释放资源
//                bufferedReader.close();
//                inputStreamReader.close();
//                inputStream.close();
//                inputStream = null;
//                conn.disconnect();
//                jsonObject = JSONObject.fromObject(buffer.toString());
//            } catch (ConnectException ce) {
//                log.error("连接超时：{}", ce);
//            } catch (Exception e) {
//                log.error("https请求异常：{}", e);
//            }
//            return jsonObject;
//        }
//    /**
//     * 获取接口访问凭证
//     *
//     * @param appid 凭证
//     * @param appsecret 密钥
//     * @return
//     */
//    public static Token getToken(String appid, String appsecret) {
//        Token token = null;
//        String requestUrl = token_url.replace("APPID", appid).replace("APPSECRET", appsecret);
//        // 发起GET请求获取凭证
//        JSONObject jsonObject = httpsRequest(requestUrl, "GET", null);
//
//        if (null != jsonObject) {
//            try {
//                token = new Token();
//                token.setAccessToken(jsonObject.getString("access_token"));
//                token.setExpiresIn(jsonObject.getInt("expires_in"));
//            } catch (JSONException e) {
//                token = null;
//                // 获取token失败
//                log.error("获取token失败 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));
//            }
//        }
//        return token;
//    }

    }

